import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IconDefinition } from '@ant-design/icons-angular';
import { NgZorroAntdModule, NZ_ICONS } from 'ng-zorro-antd';
import {
    PictureTwoTone,
    PlusOutline,
    EditOutline,
    ReloadOutline,
    DeleteOutline,
    CheckOutline,
    IssuesCloseOutline
} from '@ant-design/icons-angular/icons';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { PaginationComponent } from './pagination/pagination.component';
import { ToolbarComponent } from './toolbar/toolbar.component';
import { PhotoEquipmentComponent } from './photo-equipment/photo-equipment.component';
import { ShareModule } from 'app/shared/ShareModule';
import { ThumbnailComponent } from 'app/public/thumbnail/thumbnail.component';
import { VmsModalComponent } from 'app/public/Vms-modal/Vms-modal.component';
import { VmsSetComponent } from 'app/public/vms-set/vms-set.component';
import { LoadingComponent } from 'app/public/loading/loading.component';
import { CctvVideoComponent } from 'app/public/cctv-video/cctv-video.component';
import { ImgUploadComponent } from 'app/public/img-upload/img-upload.component';
import { CctvPlayComponent } from './cctv-play/cctv-play.component';
import { VmsErrComponent } from 'app/public/Vms-err/Vms-err.component';
// import { OlMapModule } from 'app/public/ol-map/ol-map.module';

const icons: IconDefinition[] = [PictureTwoTone, PlusOutline, EditOutline, ReloadOutline, DeleteOutline, CheckOutline, IssuesCloseOutline];

const COMPONENT = [
    PaginationComponent,
    ToolbarComponent,
    PhotoEquipmentComponent,
    ThumbnailComponent,
    ImgUploadComponent,
    VmsModalComponent,
    VmsSetComponent,
    LoadingComponent,
    CctvVideoComponent,
    CctvPlayComponent,
    VmsErrComponent
];
const PIPE = [];
const DIRECTIVE = [];
const SERVICE = [{ provide: NZ_ICONS, useValue: icons }];

@NgModule({
    imports: [CommonModule, FormsModule, ReactiveFormsModule, NgZorroAntdModule, ShareModule],
    declarations: [COMPONENT, DIRECTIVE, PIPE, ToolbarComponent],
    exports: [COMPONENT, DIRECTIVE, PIPE],
    providers: SERVICE
})
export class PublicComponentModule {}
